package com.example.stujava.module.xiangxue.generic;

public class NormalGeneric<T, V> {
    private T data;
    private V v;

    /**
     * 构造方法传入泛型，这是一个普通方法
     *
     * @param data 泛型参数
     */
    public NormalGeneric(T data) {
        this.data = data;
    }

    /**
     * 泛型方法
     *
     * @param w   参数
     * @param <W> 参数类型
     * @return 泛型类型值
     */
    @SafeVarargs
    public final <W> W genericMethod(W... w) {
        return w[w.length / 2];
    }

    public <K extends Number & Comparable> K compareMax(K v1, K v2) {
        if (v1.compareTo(v2) > 0)
            return v1;
        else
            return v2;
    }

    public static <Q> void getInstance() {

    }

    public static void main(String[] args) {
        NormalGeneric<Integer, Double> ng1 = new NormalGeneric<>(6);
        NormalGeneric<Integer, Double> ng2 = new NormalGeneric<>(8);
        System.out.println(ng1.equals(ng2));//false
        System.out.println(ng1.getClass() == ng2.getClass());//true
    }
}


